//////////////////////////////////////////////////////////////////////////
//																		//
//	Author:			Michael Mozdzierz									//
//	Date: 			01/16/2015											//
//	Description:	Make a class that manages texture registers			//
//																		//
//////////////////////////////////////////////////////////////////////////

#pragma once
#include <D3D11.h>
#include "../EdgeGraphics/GraphicsManager.h"
#include "IGrahpicsResource.h"

// Class to manage Texture Registers on the graphics device
class TextureRegisterManager
{
	TextureRegisterManager(void);
	~TextureRegisterManager(void);
public:
	// Sets the register value 'registerSlot' to value 'texture'
	void SetTexture(IGraphicsResource* texture, PiplineIndex index);
	
	// Singleton accessor
	static TextureRegisterManager* GetInstance(void)
	{
		static TextureRegisterManager instance;
		return &instance;
	}
};